#pragma once
/*--------------------------------------------------------------------------------
 * Adaptive Intelligence - Foundation Framework Class Library
 * Version 2.00
 * 
 * I/O Counters Structure
 *      Contains I/O accounting information for a process or a job object. 
 *------------------------------------------------------------------------------*/

/*--------------------------------------------------------------------------------
 * System Imports
 *------------------------------------------------------------------------------*/
#include "stdafx.h"
using namespace System;

namespace Adaptive
{
	namespace Win32
	{
		/// <summary>
		/// Contains I/O accounting information for a process or a job object. For a job object, the counters 
		/// include all operations performed by all processes that have ever been associated with the job, in 
		/// addition to all processes currently associated with the job.
		/// </summary>
		/// <remarks>
		/// This represents a managed version of the <see cref="IO_COUNTERS"/> structure.
		/// </remarks>
		public value struct IoCounters
		{
		public:
			/// <summary>
			/// The number of read operations performed.
			/// </summary>
			unsigned __int64 ReadOperationCount;  
			/// <summary>
			/// The number of write operations performed.
			/// </summary>
			unsigned __int64 WriteOperationCount;  
			/// <summary>
			/// The number of I/O operations performed, other than read and write operations.
			/// </summary>
			unsigned __int64 OtherOperationCount;  
			/// <summary>
			/// The number of bytes read.
			/// </summary>
			unsigned __int64 ReadTransferCount;  
			/// <summary>
			/// The number of bytes written.
			/// </summary>
			unsigned __int64 WriteTransferCount;  
			/// <summary>
			/// The number of bytes transferred during operations other than read and write operations.
			/// </summary>
			unsigned __int64 OtherTransferCount;
		};
	}
	}
